<?php

namespace App\JsonRpc;

interface CouponServiceInterface
{
    /**
     * 新增优惠券
     * @param array $data 请求数据
     * @return bool|int 返回结果
     */
    public function create(array $data) : bool|int;

    /**
     * 修改优惠券
     * @param string $id 优惠券ID
     * @param array $data 请求数据
     * @return bool|int 返回结果
     */
    public function update(string $id, array $data) : bool|int;

    /**
     * 删除优惠券
     * @param string $id 优惠券ID
     * @return bool|int
     */
    public function del(string $id) : bool|int;

    /**
     * 切换优惠券状态，上/下架
     * @param string $id 优惠券ID
     * @return array
     */
    public function check_status(string  $id) : array;

    /**
     * 领取优惠券
     * @param string $id 优惠券ID
     * @return bool|int
     */
    public function receive(string $id) : bool|int;

    /**
     * 获取优惠券详情
     * @param string $id 优惠券ID
     * @param int $is_user 是否是用户 0：商家 1：用户
     * @return array|null
     */
    public function info(string $id, int $is_user) : array|null;

    /**
     * 获取优惠券列表
     * @param array $where 查询条件
     * @param array $field 查询字段
     * @param int $page 当前页数
     * @param int $limit 单页数据条数
     * @return array|null
     */
    public function list(array $where, array $field, int $page, int $limit) : array|null;

    /**
     * 收藏/取消收藏优惠券
     * @param string $coupon_id
     * @return array
     */
    public function collection(string $coupon_id): array;

    /**
     * 生成优惠券UUID
     * @return string uuid
     */
    public function generate_id() : string;
}